Skip to content

RHIDP-7560 - Install and configure plugins from Extensions page #1281

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Draft
wants to merge 34 commits into
base: main
Choose a base branch
from

Conversation

Gerry-Forde
Copy link
Member

@Gerry-Forde Gerry-Forde commented Jul 23, 2025

IMPORTANT: Do Not Merge - To be merged by Docs Team Only

Version(s):
main, 1.7

Issue:
RHIDP-7560

Preview:
Managing plugins by using Extensions

@rhdh-bot
Copy link
Collaborator

rhdh-bot commented Jul 23, 2025


// .Procedure
// . Navigate to RBAC.
// . Click *Create*.
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

If users have RBAC UI enabled, they can add extensions permissions by creating a role or updating an existing role. My demo video shows how users can do it. You can add screenshots for ref.

without RBAC UI, they would need to configure the csv file in the permissions configuration in the app-config

rbac:
    policies-csv-file: <path-to>/rbac-policy.csv

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@debsmita1 I've included instructions for using RBAC UI for extensions permissions. Could you review please?

Also for clarity, can plugins be modified by ANY user by using Extensions in a Dev environment without either having RBAC installed or without the necessary permissions?

@Gerry-Forde
Copy link
Member Author

Since we are renaming Marketplace to Extensions, do we want to rename all mentions of marketplace to extensions where possible?

@dzemanov AFAIU the plugin itself is still named marketplace in 1.7, so I guess we are limited to what we can change in code snippets?
c.c. @debsmita1

@dzemanov
Copy link
Member

dzemanov commented Aug 6, 2025

Since we are renaming Marketplace to Extensions, do we want to rename all mentions of marketplace to extensions where possible?

@dzemanov AFAIU the plugin itself is still named marketplace in 1.7, so I guess we are limited to what we can change in code snippets? c.c. @debsmita1

Yes, I can in review show you which places can be renamed. I am just waiting for confirmation we want to do that. It still will be a little confusing, since the plugin name contains marketplace and some configuration also contains marketplace in names. But for new configuration, like adding the file dynamic-plugins.marketplace.yaml I was thinking we should add that with dynamic-plugins.extensions.yaml to avoid further renames in the future. Also, when referring to the plugin and to the marketplace configuration, I was thinking we can unify that to extensions configuration.

Copy link
Member

@dzemanov dzemanov left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

It would be great if we can update Configuring RHDH to install plugins by using Extensions with also installation instructions for Operator.

Copy link
Member

@dzemanov dzemanov left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Would be also good to add Troubleshooting section for what to do if plugin configuration needs variable - you can find rough draft in the setup doc

Edit: Oh, it is a stretch for this.

[id="proc-extensions-enabling-plugins-installation_{context}"]
= Configuring {product-very-short} to install plugins by using Extensions

When you install a plugin using Extensions UI, the configuration that you use is saved to a `dynamic-plugins.marketplace.yaml` file within the `dynamic-plugins-root` persistent volume. This ensures the configuration is available when you restart the application, allowing you to edit or re-enable the plugin.
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
When you install a plugin using Extensions UI, the configuration that you use is saved to a `dynamic-plugins.marketplace.yaml` file within the `dynamic-plugins-root` persistent volume. This ensures the configuration is available when you restart the application, allowing you to edit or re-enable the plugin.
When you install a plugin using Extensions UI, the configuration that you use is saved to a `dynamic-plugins.extensions.yaml` file within the `dynamic-plugins-root` persistent volume. This ensures the configuration is available when you restart the application, allowing you to edit or re-enable the plugin.

Comment on lines +67 to +86
apiVersion: rhdh.redhat.com/v1alpha3
kind: Backstage
metadata:
name: developer-hub
namespace: rhdh
spec:
application:
dynamicPluginsConfigMapName: dynamic-plugins-rhdh
extraEnvs:
envs:
- name: NODE_ENV
value: "development"
secrets:
- name: secrets-rhdh
extraFiles:
mountPath: /opt/app-root/src
route:
enabled: true
database:
enableLocalDb: true
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Please fix the indentation here, some places use only 1 space

Comment on lines +112 to +125
global:
auth:
backend:
enabled: true
clusterRouterBase: apps.<clusterName>.com
dynamic:
includes:
- dynamic-plugins.default.yaml
- /dynamic-plugins-root/dynamic-plugins.extensions.yaml
upstream:
backstage:
extraEnvVars:
- name: NODE_ENV
value: development
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Please fix the indentation here, some places use only 1 space


== Creating a role in the {product-short} UI to manage Extensions

.Prequisites
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
.Prequisites
.Prerequisites


You must create a persistent volume claim (PVC) to ensure that the cache persists when you restart the {product-very-short} application. For more information about using the dynamic plugins cache, see link:https://docs.redhat.com/en/documentation/red_hat_developer_hub/{product-version}/html-single/configuring_red_hat_developer_hub/index#using-the-dynamic-plugins-cache_running-behind-a-proxy[Using the dynamic plugins cache].

.Prequisites
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
.Prequisites
.Prerequisites

= Installing plugins by using Extensions
You can install and configure plugins by using Extensions.

.Prequisites
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
.Prequisites
.Prerequisites

Comment on lines +22 to +41
- package: ./dynamic-plugins/dist/red-hat-developer-hub-backstage-plugin-marketplace
disabled: false
pluginConfig:
dynamicPlugins:
frontend:
red-hat-developer-hub.backstage-plugin-marketplace:
appIcons:
- name: marketplace
importName: MarketplaceIcon
dynamicRoutes:
- path: /extensions/catalog
importName: DynamicMarketplacePluginRouter
mountPoints:
- mountPoint: application/provider
importName: InstallationContextProvider
- mountPoint: internal.plugins/tab
importName: DynamicMarketplacePluginContent
config:
path: marketplace
title: Catalog
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Please fix the indentation here, should be 2 spaces.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging this pull request may close these issues.

4 participants